#include<stdio.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#include<fcntl.h>
#include<string.h>
//服务器端，接收数据
int main(){
  umask(0);
  //服务端创建命名管道
  if(-1==mkfifo("fifo",0664)){
    perror("mkfifo error!\n");
  }
  char buffer[64];
  int fd = open("fifo",O_RDONLY);

  if(fd < 0){
    perror("open error!\n");
    return 1;
  }
  while(1){
    ssize_t s = read(fd,buffer,sizeof(buffer)-1);

    if(s > 0){
      buffer[s]=0;
      printf("client msg: %s",buffer);
    }

    if(s == 0){
      perror("client close");
      break;
    }
    if(s<0){
      perror("read error\n");
      return 1;
    }

  }

  close(fd);

  return 0;
}
